package com.zzyl.nursing.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 退住申请请求DTO
 *
 * @Author: Zhy
 * @Date: 2025-07-13
 **/
@ApiModel(description = "退住申请请求模型")
@Data
public class CheckOutApplyDto {

    /**
     * 入住记录ID
     */
    @ApiModelProperty(value = "入住记录ID")
    private Long checkInId;

    /**
     * 老人ID
     */
    @ApiModelProperty(value = "老人ID")
    private Long elderId;

    /**
     * 身份证号
     */
    @ApiModelProperty(value = "身份证号")
    private String idCardNo;

    /**
     * 退住日期
     */
    @ApiModelProperty(value = "退住日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime checkOutDate;

    /**
     * 退住原因
     */
    @ApiModelProperty(value = "退住原因")
    private String checkOutReason;

    /**
     * 退住类型(1=正常退住,2=合同到期,3=转院,4=其他)
     */
    @ApiModelProperty(value = "退住类型(1=正常退住,2=合同到期,3=转院,4=其他)")
    private Integer checkOutType;

    /**
     * 费用结算金额
     */
    @ApiModelProperty(value = "费用结算金额")
    private BigDecimal feeSettlement;

    /**
     * 押金退还金额
     */
    @ApiModelProperty(value = "押金退还金额")
    private BigDecimal depositRefund;

    /**
     * 终止协议文件路径
     */
    @ApiModelProperty(value = "终止协议文件路径")
    private String terminationAgreementPath;

    /**
     * 费用明细列表
     */
    @ApiModelProperty(value = "费用明细列表")
    private List<CheckOutFeeDetailDto> feeDetailList;

    /**
     * 退住床位
     */
    @ApiModelProperty(value = "退住床位")
    private String bedNumber;

    /**
     * 老人姓名
     */
    @ApiModelProperty(value = "老人姓名")
    private String elderName;
} 